package antempire.control.game.operation;

import antempire.control.GameEnum.Ant_Name;
import antempire.model.antinformation.DolichoderinaeInformation;
import antempire.model.antinformation.IAntInformation;
import antempire.model.antinformation.LosInformation;
import antempire.model.antinformation.MonomoriumInformation;
import antempire.model.antinformation.PheidoleInformation;
import antempire.model.gameinformation.GameBGInformation;
import antempire.model.gameinformation.GameInformation;
import antempire.model.gameinformation.IGameInformation;
import antempire.model.numberinformation.INumberInformation;
import antempire.model.numberinformation.Number0Information;
import antempire.model.numberinformation.Number1Information;
import antempire.model.numberinformation.Number2Information;
import antempire.model.numberinformation.Number3Information;
import antempire.model.numberinformation.Number4Information;
import antempire.model.numberinformation.Number5Information;
import antempire.model.numberinformation.Number6Information;
import antempire.model.numberinformation.Number7Information;
import antempire.model.numberinformation.Number8Information;
import antempire.model.numberinformation.Number9Information;
import antempire.model.waterinformation.IWaterInformation;
import antempire.model.waterinformation.WaterInformation;

public class ModelInformationController {
	private static ModelInformationController uniqueInstance;

	private ModelInformationController() {
	}

	public static ModelInformationController getInstance() {
		if (uniqueInstance == null) {
			uniqueInstance = new ModelInformationController();
		}
		return uniqueInstance;
	}
	
	public IAntInformation getAntInformation(Ant_Name name){
		if(name.equals(Ant_Name.MONOMORIUM))
			return new MonomoriumInformation();
		else if(name.equals(Ant_Name.PHEIDOLE))
			return new PheidoleInformation() ;
		else if(name.equals(Ant_Name.LOS))
			return new LosInformation() ;
		else if(name.equals(Ant_Name.DOLICHODERINAE))
			return new DolichoderinaeInformation() ;
		
		return null;
	}

	public IWaterInformation getWaterInformation() {
		return new WaterInformation();
	}

	public INumberInformation getNumberInformation(int i) {
		if (i == 0)
			return new Number0Information();
		else if (i == 1)
			return new Number1Information();
		else if (i == 2)
			return new Number2Information();
		else if (i == 3)
			return new Number3Information();
		else if (i == 4)
			return new Number4Information();
		else if (i == 5)
			return new Number5Information();
		else if (i == 6)
			return new Number6Information();
		else if (i == 7)
			return new Number7Information();
		else if (i == 8)
			return new Number8Information();
		else if (i == 9)
			return new Number9Information();

		return null;
	}

	public IGameInformation getGameInformation() {
		return new GameInformation();
	}
	public IGameInformation getGameBGInformation() {
		return new GameBGInformation();
	}
}
